
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>jdk1.8新特性 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>jdk1.8新特性 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Java 8 引入的 Lambda 表达式主要用途是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Lambda 表达式允许使用简洁的语法来表示匿名函数，这使得 Java 语言更加函数式，并简化了代码的编写。</div>
          </div>
          <div class="card-source">来源: 1. Lambda 表达式</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">在 Java 8 中，什么是函数式接口？可以使用哪个注解来标记它？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">函数式接口是仅包含一个抽象方法的接口。可以使用 @FunctionalInterface 注解来标记它，这样编译器会帮助验证接口是否满足函数式接口的要求。</div>
          </div>
          <div class="card-source">来源: 2. 函数式接口</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">Java 8 的 Stream API 主要用于什么目的，它支持何种编程风格？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Stream API 是用于处理集合数据的工具。它支持函数式编程风格的操作，如筛选、映射、排序和聚合，使得数据处理更加简洁和高效。</div>
          </div>
          <div class="card-source">来源: 4. Stream API</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">模式</div>
          <div class="card-question">Java 8 中的 Optional 类旨在解决什么常见问题？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">模式</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Optional 类用来表示一个可能存在或不存在的值，其目的是为了避免因使用 null 而导致的空指针异常（NullPointerException）。</div>
          </div>
          <div class="card-source">来源: 5. Optional 类</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">接口中的默认方法（Default Methods）是如何在不破坏兼容性的前提下为接口添加新功能的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">接口可以包含带有方法体的默认方法。这允许在接口中增加新功能，而无需修改已经实现该接口的类，从而保证了兼容性。</div>
          </div>
          <div class="card-source">来源: 7. 默认方法和静态方法</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Java 8 的新日期和时间 API 解决了旧 API 的哪些不足，并引入了哪些新的核心类？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">新的日期和时间 API 解决了 java.util.Date 和 java.util.Calendar 的不足。它引入了诸如 LocalDate、LocalTime、LocalDateTime、ZonedDateTime 和 Duration 等新类。</div>
          </div>
          <div class="card-source">来源: 6. 新日期和时间 API</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">语法</div>
          <div class="card-question">方法引用与 Lambda 表达式之间有何关系？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">语法</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">方法引用是 Lambda 表达式的一种简化形式，用于直接引用类的方法，从而提高代码的可读性。</div>
          </div>
          <div class="card-source">来源: 3. 方法引用</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">在并发库方面，Java 8 引入了哪个重要特性来简化异步编程？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Java 8 引入了 CompletableFuture，它使得异步编程更加简单和直观。</div>
          </div>
          <div class="card-source">来源: 9. 并发库的改进</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Java 8 引入了哪个新的 JavaScript 引擎来替代 Rhino，其优势是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Java 8 引入了新的 JavaScript 引擎 Nashorn，它替代了之前的 Rhino 引擎，并提供了更高的性能和更好的与 Java 的集成。</div>
          </div>
          <div class="card-source">来源: 8. Nashorn JavaScript 引擎</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
